package a07_ThreadPool;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

/**
 * @Author quan
 * @Description 使用JDK中的方法创建线程池
 * @Date 2023/5/12 20:08
 */
public class a02_ThreadPoolUse {
    //模拟实现线程池：一共有10个任务，线程池有3个线程。将任务提交到线程池，期望输出结果：每次这10个线程都是由线程池中的三个线程执行的。
    public static void main(String[] args) throws InterruptedException {
        //1、创建一个大小为3的线程池
        ExecutorService threadPool = Executors.newFixedThreadPool(3);
        //2、提交任务到线程池
        for (int i = 0; i < 10; i++) {
            int taskId = i;
            //3、表示要执行的任务
            threadPool.submit(()->{
                System.out.println("正在执行任务"+taskId+","+Thread.currentThread().getName());
            });
        }
        //4、等待任务执行
        TimeUnit.SECONDS.sleep(5);
        System.out.println("等待新的任务");
    }
}
